package com.scau402.system.domain;

import com.scau402.common.core.domain.entity.SysMenu;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.scau402.common.annotation.Excel;
import com.scau402.common.core.domain.BaseEntity;

import java.util.ArrayList;
import java.util.List;

/**
 * 仓库对象 wms_warehouse
 * 
 * @author ruoyi
 * @date 2023-06-26
 */
public class WmsWarehouse extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 子仓位 **/
    private List<WmsWarehouseStorage> childrenStorages = new ArrayList<WmsWarehouseStorage>();

    /** 是否生成默认仓库 **/
    private String defaultStorage;

    /** 是否不限容量 **/
    private String isInfinite;

    /** 仓库类型 0正常 1异常 2禁进 3禁出 **/
    private String warehouseType;


    /** 仓库id */
    private Long id;

    /** 仓库编码 */
    @Excel(name = "仓库编码")
    private String warehouseCode;

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String warehouseName;

    /** 所在城市 */
    @Excel(name = "所在城市")
    private String city;

    /** 地址 */
    @Excel(name = "地址")
    private String address;

    /** 负责人 */
    @Excel(name = "负责人")
    private String principal;

    /** 联系方式 */
    @Excel(name = "联系方式")
    private String telephone;

    /** 最大容量（单位/件） */
    @Excel(name = "最大容量", readConverterExp = "单=位/件")
    private Long maxCap;

    /** 已使用容量（单位/件） */
    @Excel(name = "已使用容量", readConverterExp = "单=位/件")
    private Long usedCap;

    /** 是否允许入库（0允许 1不允许） */
    @Excel(name = "是否允许入库", readConverterExp = "0=允许,1=不允许")
    private String isInOk;

    /** 是否允许出库（0允许 1不允许） */
    @Excel(name = "是否允许出库", readConverterExp = "0=允许,1=不允许")
    private String isOutOk;

    /** 是否默认仓库（0是 1不是） */
    @Excel(name = "是否默认仓库", readConverterExp = "0=是,1=不是")
    private String isDefault;

    /** 状态（0启用 1停用） */
    @Excel(name = "状态", readConverterExp = "0=启用,1=停用")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 部门ID */
    @Excel(name = "部门ID")
    private Long deptId;

    /** 租户ID */
    @Excel(name = "租户ID")
    private Long tenantId;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setWarehouseCode(String warehouseCode) 
    {
        this.warehouseCode = warehouseCode;
    }

    public String getWarehouseCode() 
    {
        return warehouseCode;
    }
    public void setWarehouseName(String warehouseName) 
    {
        this.warehouseName = warehouseName;
    }

    public String getWarehouseName() 
    {
        return warehouseName;
    }
    public void setCity(String city) 
    {
        this.city = city;
    }

    public String getCity() 
    {
        return city;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }
    public void setPrincipal(String principal) 
    {
        this.principal = principal;
    }

    public String getPrincipal() 
    {
        return principal;
    }
    public void setTelephone(String telephone) 
    {
        this.telephone = telephone;
    }

    public String getTelephone() 
    {
        return telephone;
    }
    public void setMaxCap(Long maxCap)
    {
        this.maxCap = maxCap;
    }

    public Long getMaxCap()
    {
        return maxCap;
    }
    public void setUsedCap(Long usedCap)
    {
        this.usedCap = usedCap;
    }

    public Long getUsedCap()
    {
        return usedCap;
    }

    public void setIsInOk(String isInOk) 
    {
        this.isInOk = isInOk;
    }

    public String getIsInOk() 
    {
        return isInOk;
    }
    public void setIsOutOk(String isOutOk) 
    {
        this.isOutOk = isOutOk;
    }

    public String getIsOutOk() 
    {
        return isOutOk;
    }
    public void setIsDefault(String isDefault) 
    {
        this.isDefault = isDefault;
    }

    public String getIsDefault() 
    {
        return isDefault;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }
    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }
    public void setTenantId(Long tenantId) 
    {
        this.tenantId = tenantId;
    }

    public Long getTenantId() 
    {
        return tenantId;
    }

    public String getWarehouseType() {
        return warehouseType;
    }

    public void setWarehouseType(String warehouseType) {
        this.warehouseType = warehouseType;
    }

    public String getDefaultStorage() {
        return defaultStorage;
    }

    public void setDefaultStorage(String defaultStorage) {
        this.defaultStorage = defaultStorage;
    }


    public List<WmsWarehouseStorage> getChildrenStorages() {
        return childrenStorages;
    }

    public void setChildrenStorages(List<WmsWarehouseStorage> childrenStorages) {
        this.childrenStorages = childrenStorages;
    }

    public String getIsInfinite() {
        return isInfinite;
    }

    public void setIsInfinite(String isInfinite) {
        this.isInfinite = isInfinite;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("warehouseCode", getWarehouseCode())
            .append("warehouseName", getWarehouseName())
            .append("city", getCity())
            .append("address", getAddress())
            .append("principal", getPrincipal())
            .append("telephone", getTelephone())
            .append("maxCap", getMaxCap())
            .append("usedCap", getUsedCap())
            .append("isInOk", getIsInOk())
            .append("isOutOk", getIsOutOk())
            .append("isDefault", getIsDefault())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("remark", getRemark())
            .append("deptId", getDeptId())
            .append("tenantId", getTenantId())
            .toString();
    }
}
